#ifndef MY_HEADER_H
#define MY_HEADER_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/types.h>
#include <dirent.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <ctype.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/wait.h>
#include <syslog.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <signal.h>
#include <pthread.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <shadow.h>
#include <syslog.h>
#include <sys/epoll.h>  
#include <unistd.h>
#include <crypt.h>
#include <mysql/mysql.h>
#include <sys/sendfile.h>

//only for this event
//typedef enum command_s{
//    CD = 1,
//    LS,
//    PUTS,
//    GETS,
//    REMOVE,
//    PWD,
//    MKDIR,
//    RMDIR,
//    AUTH = 100
//}command_t;

#define ARGS_CHECK(argc,num){if(argc!=num){fprintf(stderr,"args error!\n");return -1;}}
#define ERROR_CHECK(ret,num,msg){if(ret==num){perror(msg);exit(-1);}}
#define THREAD_ERROR_CHECK(ret,msg){if(ret!=0){fprintf(stderr,"%s:%s",msg,strerror(ret));}}

#endif
